package net.qiqbframework.common;

import java.lang.annotation.*;

/**
 * 表明组件的优先级，值越小，优先级越高
 */
@Inherited
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Priority {
    /**
     * 最高优先级
     */
    int HIGHEST = Integer.MIN_VALUE;
    /**
     * 最低优先级
     */
    int LOWEST = Integer.MAX_VALUE;
    /**
     * 介于中等和最低优先级的一半
     */
    int LOW = LOWEST / 2;
    /**
     * 中等。默认值
     */
    int NEUTRAL = 0;
    /**
     * 介于中等和最高优先级的一半
     */
    int HIGH = HIGHEST / 2;

    /**
     * 优先级值. 值越小，优先级越高
     */
    int value() default NEUTRAL;
}
